# 代码所有：cxw
# 开发时间：2021/7/1 14:38

#获取列表的多个元素,切片操作

#*语法格式:
'''
列表名[start:stop:step ]
'''


'''
切片的结果:原列表的拷贝
切片的范围：[start,stop)     #左开右必
step默认为1，简写为[start,stop) 
step为正数
'''

a=[10,20,30,40,50,60,70,80]
#0,1,2,3,4,5,6,7
#start=1,stop=6,step=1
print(a[1:6:1])  #取出来的数字为索引为1-5，步长step=1   对应的索引分别就是 1 2 3 4 5 对应的步长为1
#而这个取出来的是一个新的列表对象
a1=a[1:6:1]      #a1就是切片过的列表
print('原列表：',a)
print('切片过的列表：',a1)
print('省略步长')
a2=a[1:6]
print('省略步长',a2)  #默认步长为1
print('同理可以这样写',a[1:6:])

print('start=1,stop=6,step=2')
print('步长为2时',a[1:6:2])    #对应的索引就为1 3 5  步长为2，对应的数字为 20 40 60
print('当start不写时，默认从0开始切片',a[:6:2])   #start不写时，从零号位索引开始，那么对应的索引就为 0 2 4 对应的数字为10 30 50
print('当stop不写时，stop采用默认,默认结束就为列表元素的所有元素结束',a[1::2])    #stop不写时，以全部元素的数字结束，对应索引为 1 3 5 7



#step为负数时
print('原列表',a)
print('当步长为负数时',a[::-1])   #当start和stop不写时，步长为负数，对应的索引为元索引的负数。 逆序输出
#将元素的列表逆序输出
print('start=7,stop省略,step=-1',a[7::-1])      # 7 6 5 4 3 2 1
print('start=6,stop=0,step=-2',a[6:0:-2])    #70 50 30 6 4 2